package com.cloudkinto.service.fbaorderoutput.vo;

import com.cloudkinto.common.utils.StringsUtil;
import com.cloudkinto.service.operate.vo.OperateRes;
import com.cloudkinto.service.product.vo.flowing.ProductStockFlowingRes;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @author zhangyy
 * @date 2020/6/4 13:42
 * @description:
 */
@Data
@ApiModel()
public class FbaOrderOutputDetailRes {
    private Long id;
    /**
     * 1 一件代发 2 fba转运
     */
    @ApiModelProperty("发货类型")
    private String orderType;
    private String orderTypeName;

    /**
     * 0 未发货  1 已发货 2 待发货
     */
    @ApiModelProperty("发货状态")
    private String status;
    @ApiModelProperty("发货状态Id")
    private Integer statusId;

    private Long shopId;
    private String shop;

    private Long storageId;
    private String storage;

    private Integer shipmentType;
    private String shipmentTypeName;

    private String orderNumber;

    private Long companyId;


    @ApiModelProperty("仓库类型 FBA仓库：fba  私人仓库：own")
    private String storageType;

    /**
     * 顾客自定单号
     */
    @ApiModelProperty("顾客自定单号")
    private String orderNo;

    /**
     * 收货人姓名
     */
    @ApiModelProperty("收货人姓名")
    private String receiverName;

    /**
     * 联系电话
     */
    @ApiModelProperty("联系电话")
    private String telPhone;

    /**
     * 邮编
     */
    @ApiModelProperty("邮编")
    private String postCode;

    /**
     * 地区
     */
    @ApiModelProperty("地区")
    private String area;

    /**
     * 地址
     */
    @ApiModelProperty("地址")
    private String address;

    /**
     * 追踪单号
     */
    @ApiModelProperty("追踪单号")
    private String trackNumber;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String tips;
    /**
     * 系统备注
     */
    @ApiModelProperty("系统备注")
    private String sysTips;

    /**
     * 运费
     */
    @ApiModelProperty("运费")
    private double shipFee;

    /**
     * 出库费
     */
    @ApiModelProperty("收货人电话")
    private double outFee;

    /**
     * 操作费
     */
    @ApiModelProperty("操作费")
    private double operateFee;

    /**
     * 税费
     */
    @ApiModelProperty("税费")
    private double taxFee;

    private String storageSku;
    /**
     * 指定配达日期
     */
    @ApiModelProperty("指定配达日期")
    private String deliveryDate;
    /**
     * 指定配达时间
     */
    @ApiModelProperty("指定配达时间")
    private String deliveryTime;
    @ApiModelProperty("运输公司Id")
    private Long trackId;
    @ApiModelProperty("运输公司")
    private String trackName;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private Long createBy;

    private Date updateTime;

    private Long updateBy;

    private Long deleteBy;

    private Date deleteTime;
    /**
     * 代收款
     */
    @ApiModelProperty("代收款")
    private Integer cod;

    private Long fileId;
    private String fileUrl;

    private Long signatureFileId;
    private String signatureFileUrl;
    private Long productFileId;
    private String productFileUrl;

    private Long otherFileId;
    private String otherFileUrl;
    private String trackFileUrl;

    private String poNumber;

    private Long fbaStorageId;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date appointmentStorageTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date appointmentCarTime;

//    private List<OrderOutputProductDetail> orderOutputProductDetailList;

    private List<FbaOrderOutputPackageDetail> packageList;

    private List<OperateRes> operateResList;

    @ApiModelProperty("发货记录")
    List<ProductStockFlowingRes> sendList;

    @ApiModelProperty("0 未拣货  1 待拣货 2已拣货")
    private Integer pickStatus;


    public String getStatus() {
        return StringsUtil.createI18Message(status);
    }

    public String getShipmentTypeName() {
        return StringsUtil.createI18Message(shipmentTypeName);
    }
}
